/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.ecommerce.entity.impl;

import br.com.ecommerce.entity.IEntity;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

/**
 *
 * @author rpateixeira
 */
@Entity
@Table(name="ITENS_VENDA")
public class ItemVenda implements IEntity,Serializable{
    @Id
    @SequenceGenerator(name = "ITEMVENDA_GENERATOR", sequenceName = "public.itemVendaSequence", initialValue = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="ITEMVENDA_GENERATOR")
    @Column(name="SEQ_ITEMVENDA")
    private Long id;
    @NotNull
    @ManyToOne(optional=false,cascade=CascadeType.PERSIST)
    @JoinColumn(name="ID_VENDA",referencedColumnName="SEQ_VENDA")
    @Valid
    private Venda venda;
    @ManyToOne(optional=false,cascade=CascadeType.PERSIST)
    @JoinColumn(name="ID_PRODUTO",referencedColumnName="SEQ_PRODUTO")
    @Valid
    @NotNull
    private Produto produto;
    @Column(nullable=false)
    @Min(1)
    private Integer quantidadeProdutos=1;
    @Override
    public Long getId() {
        return this.id;
    }
    
    public Produto getProduto() {
        return produto;
    }

    public void setProduto(Produto produto) {
        this.produto = produto;
    }
 
    public Integer getQuantidadeProdutos() {
        return quantidadeProdutos;
    }

    public void setQuantidadeProdutos(Integer quantidadeProdutos) {
        this.quantidadeProdutos = quantidadeProdutos;
    }
    
    public Venda getVenda() {
        return venda;
    }

    public void setVenda(Venda venda) {
        this.venda = venda;
    }


}
